#define _CRT_SECURE_NO_WARNINGS 
#include<iostream>
#include<string>
#include<algorithm>
#include<sstream>
//#include "NumberCalculator.cpp"
using namespace std;
//template<typename T>
//int add(T n1, T n2)
//{
//	return n1 + n2;
//}
//int add(int n1, int n2)
//{
//	return n1 + n2;
//}
//class Person
//{
//public:
//	int age;
//	Person():age(0) {};
//	Person(int age) :age(age) {};
//};
//bool operator>(const Person& p1, const Person& p2)
//{
//	return p1.age > p2.age;
//}
//template <>
//int compare<Person>(Person& p1, Person& p2)
//{
//	if (p1.age > p2.age)
//	{
//		return 1;
//	}
//	else if (p1.age < p2.age)
//	{
//		return -1;
//	}
//	return 0;
//}
//template <typename T>
//int compare(T& n1, T& n2)
//{
//	if (n1 > n2)
//	{
//		return 1;
//	}
//	else
//	{
//		return -1;
//	}
//}
//template<typename T>
//void sort(T* array, int len)
//{
//	int i, j;
//	for (i = 0; i < len - 1; i++)
//	{
//		for (j = 0; j < len - 1 - i; j++)
//		{
//			if (array[j] > array[j + 1])
//			{
//				T temp = array[j];
//				array[j] = array[j + 1];
//				array[j + 1] = temp;
//			}
//		}
//	}
//}
//template<typename T>
//string Tostring(T* array, int len)
//{
//	if (len == 0|| array == nullptr)
//	{
//		return "[]";
//	}
//	ostringstream oss;
//	oss << "[";
//	for (int i = 0; i < len - 1; i++)
//	{
//		oss << array[i] << ",";
//	}
//	oss << array[len - 1] << "]";
//	return oss.str();
//}
//template<typename T1,typename T2>
//class NumberCalculator
//{
//private:
//	T1 n1;
//	T2 n2;
//public:
//	NumberCalculator() {};
//	NumberCalculator(T1 n1, T2 n2) :n1(n1), n2(n2) {};
//	void showAddResult()
//	{
//		cout << n1 + n2 << endl;
//	}
//	void showMinusRwsult()
//	{
//		cout << n1 - n2 << endl;
//	}
//};
//void useCalculator(NumberCalculator<int,int>&op)
//{
//	op.showAddResult();
//}
//template<typename X,typename Y>
//void useCalculator1(NumberCalculator<X, Y>& op)
//{
//	op.showMinusRwsult;
//}
//template<typename T>
//class Animal
//{
//public:
//	T arg;
//};
//class Dog :public Animal<int>
//{
//
//};
//template<typename E>
//class Cat :public Animal<E>
//{
//
//};
//class Dog
//{
//public:
//	void bark()
//	{
//		cout << "Dog Bark" << endl;
//	}
//};
//class Cat
//{
//public:
//	void sleep()
//	{
//		cout << "Cat Sleep" << endl;
//	}
//};
//template<typename T>
//class Person
//{
//public:
//	T pet;
//	void makeBark()
//	{
//		pet.bark();
//	}
//	void makeSleep()
//	{
//		pet.sleep();
//	}
//};
//template<typename T1,typename T2>
//
//class NumberCalculator
//{
//private:
//public:
//	NumberCalculator();
//	NumberCalculator(T1 n1, T2 n2);
//	void add();
//};
//template<typename T1, typename T2>
//NumberCalculator<T1,T2>::NumberCalculator()
//{
//
//}
//template<typename T1, typename T2>
//NumberCalculator<T1, T2>::NumberCalculator(T1 n1,T2 n2)
//{
//	this->n1 = n1;
//	this->n2 = n2;
//}
//template<typename T1, typename T2>
//void NumberCalculator<T1, T2>::add()
//{
//	cout << n1 + n2 << endl;
//}
//int main()
//{
//	/*int n = 10;
//	char c = 'a';
//	add(n, c);*/
//	//int x = 10;
//	//int y = 20;
//	//cout << compare(x, y) << endl;
//	//Person xiaobai(19);
//	//Person xiaohei(20);
//	//cout << compare("xiaobai", "xiaohei") << endl;
//	/*int array[] = { 1,3,5,7,9,8,6,4,2 };
//	int len = sizeof(array) e len1 = sizeof(array1) / sizeof(double);
//	sort(array1, len1);
//	cout << Tostring(array1, len1) << endl;
//	return 0;/ sizeof(int);
//	cout << Tostring(array, len) << endl;
//	double array1[] = { 1.2,4.2 ,3.4};*/
//	/*NumberCalculator<int, int >cal1(10, 20);
//	NumberCalculator<double, double >cal2(10, 20);
//	cal1.showAddResult();
//	cal1.showMinusRwsult();
//	useCalculator(cal1);
//	useCalculator1(cal2);*/
//	/*Dog xiaobai;
//	xiaobai.arg = 10;
//	Cat<string>xiaohei;
//	xiaohei.arg = "abc";*/
//	/*Person<Dog>xiaobai;
//	xiaobai.makeBark();*/
//	NumberCalculator<int, int>cal1(10, 20);
//	cal1.add();
//
//	return 0;
//}
//int main()
//{
//	NumberCalculator<int, int>cal1;
//	return 0;
//}
//template<typename T1,typename T2>
//template<typename T1, typename T2>
//class NumberCalculator;
//template<typename T1, typename T2>
//void print(const NumberCalcultor <T1, T2>& cal)
//{
//	cout << "n1 = " << cal.n1 << "n2 = " << cal.n2 << endl;
//}
//template<typename T1,typename T2>
//class NumberCalcultor
//{
//	friend void print<>(const NumberCalcultor <T1, T2>& cal);
//	//{
//	//	cout << "n1 = " << cal.n1 << "n2 = " << cal.n2 << endl;
//	//}
//private:
//	T1 n1;
//	T2 n2;
//public:
//	NumberCalcultor(T1 n1, T2 n2);
//};
//
//int main()
//{
//	NumberCalcultor<int, int >cal(30, 20);
//	print(cal);
//	return 0;
//}
//template<typename T1, typename T2>
//NumberCalcultor<T1, T2>::NumberCalcultor(T1 n1, T2 n2)
//{
//	this->n1 = n1;
//	this->n2 = n2;
//}
#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "Hello World";
    int result = memcmp(str1, str2, 5);
    if (result == 0) {
        printf("The first 5 bytes are equal\n");
    }
    return 0;
}
